/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package olimpus.dom;

import olimpus.genericos.Coneccion;
import olimpus.obj.Paquetes;
import olimpus.per.PaquetesPer;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import olimpus.per.FuncionesPer;

/**
 *
 * @author Leonardo
 */
public class PaquetesDom
{  
   public static Paquetes obtenerPaquetes(long xIdPaquete) throws Exception
   {  
       Paquetes objPaquetes = new Paquetes();
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           objPaquetes = PaquetesPer.obtenerPaquetes(con, xIdPaquete);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return objPaquetes;
   }

   public static boolean existePaquetes(long xIdPaquete) throws Exception
   {  
       boolean existe;
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           existe = PaquetesPer.existePaquetes(con, xIdPaquete);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return existe;
   }
   
   public static boolean existePaquetes(String xNombre) throws Exception
   {  
       boolean existe;
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           existe = PaquetesPer.existePaquetes(con, xNombre);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return existe;
   }

   public static ArrayList<Paquetes> obtenerColeccionPaquetes() throws Exception
   {  
       ArrayList<Paquetes> colPaquetes = new ArrayList<Paquetes>();
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           colPaquetes = PaquetesPer.obtenerColeccionPaquetes(con);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return colPaquetes;
   }

   public static ArrayList<Paquetes> busquedaColeccionPaquetes(String xTextoBuscar) throws Exception
   {  
       ArrayList<Paquetes> colPaquetes = new ArrayList<Paquetes>();
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           colPaquetes = PaquetesPer.busquedaColeccionPaquetes(con, xTextoBuscar);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return colPaquetes;
   }
   
   public static void altaPaquetes(Paquetes xObjPaquetes) throws Exception
   {  
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           xObjPaquetes.setIdPaquete(FuncionesPer.obtenerNumerador(con, "ID_PAQUETE", "PAQUETES"));
           PaquetesPer.altaPaquetes(con, xObjPaquetes);
           con.commit();
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
   }

   public static void bajaPaquetes(Paquetes xObjPaquetes) throws Exception
   {  
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           PaquetesPer.bajaPaquetes(con, xObjPaquetes);
           con.commit();
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
   }

   public static void modificaPaquetes(Paquetes xObjPaquetes) throws Exception
   {  
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           PaquetesPer.modificaPaquetes(con, xObjPaquetes);
           con.commit();
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(PaquetesDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
   }
}

